//GameStateManager.h
#ifndef __GAMESTATEMANAGER_H__
    #define __GAMESTATEMANAGER_H__

#include "GameState.h"

//enumeration to create different GameStates
enum {

    GAMESTATE_NONE,
    GAMESTATE_INTRO,
    GAMESTATE_MAP,
    GAMESTATE_BATTLE,

};

//GameStateManager class manages and swaps between different GameStates
class GameStateManager {
    public:

//Function to pass the events to the ActiveGameState
        static void OnEvent(SDL_Event* Event);

//Function to pass the OnLoop calls to the ActiveGameState
        static void OnLoop();

//Fucntino to pass the OnRender calls to the ActiveGameState
        static void OnRender(SDL_Surface* Surf_Display);

//Function to set the ActiveGameState based on the
//GameStateID enumeration passed to it
        static void SetActiveGameState(int GameStateID);

//Returns a pointer to the ActiveGameState
        static GameState* GetActiveGameState();


    private:
        static GameState* ActiveGameState;

};

#endif
